1. Field of the Invention
The invention relates to computer systems, particularly to networked computers and related software wherein processing is distributed between client and server machines.
2. Description of Background Art
Computer systems may be coupled electronically such that separate processors cooperate in a networked fashion. In client-server type networks, for example, processing tasks are distributed between a server processor and one or more corresponding client processors. An increasingly popular application of client-server technology arises in inter/intra-net use, for example, when user client processors access world-wide web server processor sites.
Networked computing techniques employed for conventional distributed processing are limited, however, especially when attempting remotely to run popular software programs, such as Windows applications. Limitations include inefficient use of network channel resources, particularly when substantial media content is transferred between processors. Also, interface functionality tends to be restricted, particularly at client/user machine.
The invention resides in software for partitioning processor code transmitted between networked server and client processors associated with application programs in order to distribute execution in a multi-processor computing system. In particular, Windows application instructions transmitted between coupled processors are monitored, and, as appropriate, intercepted, for partitioning into media (e.g., any display-related instruction) and other non-media portions, whereby the media portion is run by remote machines, while the non-media portion is run by a central machine in a coordinated manner. Thus, for example, when the client computer is running display-related instructions for a particular application, its end-user effectively sees and interacts locally with the application desirably, as if the entire application program were being executed completely on the server computer (i.e., without instruction partitioning).
Preferably, clients access application programs through remote access servers or graphical internet interface, such as world-wide web browsers. Also, client requests may be atomized such that instruction sub-sets of application programs are partitioned correspondingly. Further, operating system parameters on which application programs are run may be provided selectably to limit access. Moreover, server processor may centralize client administrative tasks and provide metering to monitor client/server execution of application programs.